package com.clear.observer.subject;

import com.clear.observer.observer.Observer;

/**
 * 主题
 * 被观察者应该提供注册、删除、通知观察者等能力
 */
public interface Subject {
    /**
     * 注册观察者的能力
     */
    void registerObserver(Observer o);

    /**
     * 删除一个具体的观察者
     */
    void removeObserver(Observer o);

    /**
     * 一旦发生了观察的行为，应该通知所有的观察者
     */
    void notifyObservers();
}
